home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1997 December / PC Pro December 1997 CD-Rom coverdisc.iso / symantec / dbAnywh / JAVA.BIN / CLASSES.ZIP / sun / awt / win32 / MToolkit.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-14  |  7.7 KB  |  310 lines

  1. package sun.awt.win32;
  2.  
  3. import java.awt.Button;
  4. import java.awt.Canvas;
  5. import java.awt.Checkbox;
  6. import java.awt.CheckboxMenuItem;
  7. import java.awt.Choice;
  8. import java.awt.Dialog;
  9. import java.awt.Dimension;
  10. import java.awt.FileDialog;
  11. import java.awt.Font;
  12. import java.awt.FontMetrics;
  13. import java.awt.Frame;
  14. import java.awt.Image;
  15. import java.awt.Label;
  16. import java.awt.List;
  17. import java.awt.Menu;
  18. import java.awt.MenuBar;
  19. import java.awt.MenuItem;
  20. import java.awt.Panel;
  21. import java.awt.Scrollbar;
  22. import java.awt.TextArea;
  23. import java.awt.TextField;
  24. import java.awt.Toolkit;
  25. import java.awt.Window;
  26. import java.awt.image.ColorModel;
  27. import java.awt.image.ImageObserver;
  28. import java.awt.image.ImageProducer;
  29. import java.awt.peer.ButtonPeer;
  30. import java.awt.peer.CanvasPeer;
  31. import java.awt.peer.CheckboxMenuItemPeer;
  32. import java.awt.peer.CheckboxPeer;
  33. import java.awt.peer.ChoicePeer;
  34. import java.awt.peer.DialogPeer;
  35. import java.awt.peer.FileDialogPeer;
  36. import java.awt.peer.FramePeer;
  37. import java.awt.peer.LabelPeer;
  38. import java.awt.peer.ListPeer;
  39. import java.awt.peer.MenuBarPeer;
  40. import java.awt.peer.MenuItemPeer;
  41. import java.awt.peer.MenuPeer;
  42. import java.awt.peer.PanelPeer;
  43. import java.awt.peer.ScrollbarPeer;
  44. import java.awt.peer.TextAreaPeer;
  45. import java.awt.peer.TextFieldPeer;
  46. import java.awt.peer.WindowPeer;
  47. import java.net.URL;
  48. import java.util.Hashtable;
  49. import sun.awt.image.FileImageSource;
  50. import sun.awt.image.ImageRepresentation;
  51. import sun.awt.image.URLImageSource;
  52.  
  53. public class MToolkit extends Toolkit implements Runnable {
  54.    boolean serverThread = true;
  55.    static Hashtable imgHash = new Hashtable();
  56.    static ColorModel screenmodel;
  57.  
  58.    public MToolkit() {
  59.       synchronized(this){}
  60.  
  61.       try {
  62.          (new Thread(this, "AWT-Win32")).start();
  63.  
  64.          try {
  65.             this.wait();
  66.          } catch (InterruptedException var4) {
  67.             System.err.println("Interrupted while starting AWT main thread, aborting.");
  68.             System.exit(1);
  69.          }
  70.       } catch (Throwable var5) {
  71.          throw var5;
  72.       }
  73.  
  74.       this.serverThread = false;
  75.       (new Thread(this, "AWT-Callback-Win32")).start();
  76.    }
  77.  
  78.    public native void init(Thread var1);
  79.  
  80.    public void run() {
  81.       if (this.serverThread) {
  82.          try {
  83.             System.loadLibrary("awt");
  84.             this.init(Thread.currentThread());
  85.          } catch (Throwable var2) {
  86.             System.err.println("Exception received while initializing AWT toolkit, aborting.");
  87.             var2.printStackTrace();
  88.             System.exit(1);
  89.          }
  90.  
  91.          this.eventLoop();
  92.       } else {
  93.          this.callbackLoop();
  94.       }
  95.    }
  96.  
  97.    native void eventLoop();
  98.  
  99.    native void callbackLoop();
  100.  
  101.    public ButtonPeer createButton(Button var1) {
  102.       return new MButtonPeer(var1);
  103.    }
  104.  
  105.    public TextFieldPeer createTextField(TextField var1) {
  106.       return new MTextFieldPeer(var1);
  107.    }
  108.  
  109.    public LabelPeer createLabel(Label var1) {
  110.       return new MLabelPeer(var1);
  111.    }
  112.  
  113.    public ListPeer createList(List var1) {
  114.       return new MListPeer(var1);
  115.    }
  116.  
  117.    public CheckboxPeer createCheckbox(Checkbox var1) {
  118.       return new MCheckboxPeer(var1);
  119.    }
  120.  
  121.    public ScrollbarPeer createScrollbar(Scrollbar var1) {
  122.       return new MScrollbarPeer(var1);
  123.    }
  124.  
  125.    public TextAreaPeer createTextArea(TextArea var1) {
  126.       return new MTextAreaPeer(var1);
  127.    }
  128.  
  129.    public ChoicePeer createChoice(Choice var1) {
  130.       return new MChoicePeer(var1);
  131.    }
  132.  
  133.    public FramePeer createFrame(Frame var1) {
  134.       return new MFramePeer(var1);
  135.    }
  136.  
  137.    public CanvasPeer createCanvas(Canvas var1) {
  138.       return new MCanvasPeer(var1);
  139.    }
  140.  
  141.    public PanelPeer createPanel(Panel var1) {
  142.       return new MPanelPeer(var1);
  143.    }
  144.  
  145.    public WindowPeer createWindow(Window var1) {
  146.       return new MWindowPeer(var1);
  147.    }
  148.  
  149.    public DialogPeer createDialog(Dialog var1) {
  150.       return new MDialogPeer(var1);
  151.    }
  152.  
  153.    public FileDialogPeer createFileDialog(FileDialog var1) {
  154.       return new MFileDialogPeer(var1);
  155.    }
  156.  
  157.    public MenuBarPeer createMenuBar(MenuBar var1) {
  158.       return new MMenuBarPeer(var1);
  159.    }
  160.  
  161.    public MenuPeer createMenu(Menu var1) {
  162.       return new MMenuPeer(var1);
  163.    }
  164.  
  165.    public MenuItemPeer createMenuItem(MenuItem var1) {
  166.       return new MMenuItemPeer(var1);
  167.    }
  168.  
  169.    public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem var1) {
  170.       return new MCheckboxMenuItemPeer(var1);
  171.    }
  172.  
  173.    static synchronized Image getImageFromHash(Toolkit var0, URL var1) {
  174.       SecurityManager var2 = System.getSecurityManager();
  175.       if (var2 != null) {
  176.          var2.checkConnect(var1.getHost(), var1.getPort());
  177.       }
  178.  
  179.       Image var3 = (Image)imgHash.get(var1);
  180.       if (var3 == null) {
  181.          try {
  182.             var3 = var0.createImage(new URLImageSource(var1));
  183.             imgHash.put(var1, var3);
  184.          } catch (Exception var4) {
  185.          }
  186.       }
  187.  
  188.       return var3;
  189.    }
  190.  
  191.    static synchronized Image getImageFromHash(Toolkit var0, String var1) {
  192.       SecurityManager var2 = System.getSecurityManager();
  193.       if (var2 != null) {
  194.          var2.checkRead(var1);
  195.       }
  196.  
  197.       Image var3 = (Image)imgHash.get(var1);
  198.       if (var3 == null) {
  199.          try {
  200.             var3 = var0.createImage(new FileImageSource(var1));
  201.             imgHash.put(var1, var3);
  202.          } catch (Exception var4) {
  203.          }
  204.       }
  205.  
  206.       return var3;
  207.    }
  208.  
  209.    public Image getImage(String var1) {
  210.       return getImageFromHash(this, (String)var1);
  211.    }
  212.  
  213.    public Image getImage(URL var1) {
  214.       return getImageFromHash(this, (URL)var1);
  215.    }
  216.  
  217.    static boolean prepareScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  218.       if (var1 != 0 && var2 != 0) {
  219.          Win32Image var4 = (Win32Image)var0;
  220.          if (((sun.awt.image.Image)var4).hasError()) {
  221.             if (var3 != null) {
  222.                var3.imageUpdate(var0, 192, -1, -1, -1, -1);
  223.             }
  224.  
  225.             return false;
  226.          } else {
  227.             if (var1 < 0) {
  228.                var1 = -1;
  229.             }
  230.  
  231.             if (var2 < 0) {
  232.                var2 = -1;
  233.             }
  234.  
  235.             ImageRepresentation var5 = var4.getImageRep(var1, var2);
  236.             return var5.prepare(var3);
  237.          }
  238.       } else {
  239.          return true;
  240.       }
  241.    }
  242.  
  243.    static int checkScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  244.       Win32Image var4 = (Win32Image)var0;
  245.       int var5;
  246.       if (var1 != 0 && var2 != 0) {
  247.          if (var1 < 0) {
  248.             var1 = -1;
  249.          }
  250.  
  251.          if (var2 < 0) {
  252.             var2 = -1;
  253.          }
  254.  
  255.          var5 = var4.getImageRep(var1, var2).check(var3);
  256.       } else {
  257.          var5 = 32;
  258.       }
  259.  
  260.       return ((sun.awt.image.Image)var4).check(var3) | var5;
  261.    }
  262.  
  263.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  264.       return checkScrImage(var1, var2, var3, var4);
  265.    }
  266.  
  267.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  268.       return prepareScrImage(var1, var2, var3, var4);
  269.    }
  270.  
  271.    public Image createImage(ImageProducer var1) {
  272.       return new Win32Image(var1);
  273.    }
  274.  
  275.    static native ColorModel makeColorModel();
  276.  
  277.    static ColorModel getStaticColorModel() {
  278.       if (screenmodel == null) {
  279.          screenmodel = makeColorModel();
  280.       }
  281.  
  282.       return screenmodel;
  283.    }
  284.  
  285.    public ColorModel getColorModel() {
  286.       return getStaticColorModel();
  287.    }
  288.  
  289.    public Dimension getScreenSize() {
  290.       return new Dimension(this.getScreenWidth(), this.getScreenHeight());
  291.    }
  292.  
  293.    public native int getScreenResolution();
  294.  
  295.    native int getScreenWidth();
  296.  
  297.    native int getScreenHeight();
  298.  
  299.    public String[] getFontList() {
  300.       String[] var1 = new String[]{"Dialog", "Helvetica", "TimesRoman", "Courier", "DialogInput", "ZapfDingbats"};
  301.       return var1;
  302.    }
  303.  
  304.    public FontMetrics getFontMetrics(Font var1) {
  305.       return Win32FontMetrics.getFontMetrics(var1);
  306.    }
  307.  
  308.    public native void sync();
  309. }
  310.